package com.wudl.govern.mapper;

import com.wudl.govern.domain.ControlTask;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author ：wudl
 * @date ：Created in 2022-04-05 16:37
 * @description：
 * @modified By：
 * @version: 1.0
 */

@Mapper
public interface ControlTaskMapper {

    int deleteByPrimaryKey(Integer id);

    int insert(ControlTask record);

    int insertSelective(ControlTask record);


    int updateByPrimaryKeySelective(ControlTask record);

    int updateByPrimaryKey(ControlTask record);

    /**
     * 根据id查询一条数据
     *
     * @param id
     * @return
     */
    ControlTask selectByPrimaryKey(@Param("id") Integer id);

    /**
     * 按条件分页查询
     *
     * @param record 要修改的对象

     * @return
     */


    /**
     * 按条件分页查询
     *
     * @param condition 查找条件
     *
     * @return
     */
    List<Map<String, Object>> selectPage(ControlTask condition);

    /**
     * 逻辑删除一个任务
     *
     * @param taskId 任务id
     *
     * @return
     */
    int deleteOne(@Param("taskId") Integer taskId);






    /**
     * 获取corn表达式
     * @param taskId
     * @return
     */
    String selectCorn(@Param("taskId") Integer taskId);

    /**
     * 获取执行方式
     * @param taskId
     * @return
     */
    String selectExecutionWay(@Param("taskId") Integer taskId);



    /**
     * 查询jobId
     * @param taskId
     * @return
     */
    String selectTaskJobId(@Param("taskId") Integer taskId);

    /**
     * 查询是否含有该用户
     * @param taskName 任务名称
     * @return
     */
    List<Map<String, Object>> selectByName(@Param("taskName") String taskName);

    /***
     * 查询任务信息
     * @param jobId              数据源id
     * @return
     */
    Map<String,Object> selectTaskInfo(@Param("jobId") String jobId);

    /***
     * 查询规则列表信息
     * @param jobId              数据源id
     * @return
     */
    List<Map<String,String>> selectRuleList(@Param("jobId") String jobId);

    /**
     * 根据规则id获取规则名称
     * @param ruleId
     * @return
     */
    List<String> selectTaskById(@Param("ruleId")Integer ruleId);
}
